home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / JTextComponent$AccessibleJTextComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  5.4 KB  |  282 lines

  1. package javax.swing.text;
  2.  
  3. import java.awt.Point;
  4. import java.awt.Rectangle;
  5. import java.text.BreakIterator;
  6. import javax.accessibility.AccessibleContext;
  7. import javax.accessibility.AccessibleRole;
  8. import javax.accessibility.AccessibleState;
  9. import javax.accessibility.AccessibleStateSet;
  10. import javax.accessibility.AccessibleText;
  11. import javax.swing.JComponent;
  12. import javax.swing.event.CaretEvent;
  13. import javax.swing.event.CaretListener;
  14. import javax.swing.event.DocumentEvent;
  15. import javax.swing.event.DocumentListener;
  16.  
  17. public class JTextComponent$AccessibleJTextComponent extends JComponent.AccessibleJComponent implements AccessibleText, CaretListener, DocumentListener {
  18.    // $FF: synthetic field
  19.    private final JTextComponent this$0;
  20.    int caretPos;
  21.  
  22.    public JTextComponent$AccessibleJTextComponent(JTextComponent var1) {
  23.       super(var1);
  24.       this.this$0 = var1;
  25.       Document var2 = var1.getDocument();
  26.       if (var2 != null) {
  27.          var2.addDocumentListener(this);
  28.       }
  29.  
  30.       var1.addCaretListener(this);
  31.       this.caretPos = this.getCaretPosition();
  32.    }
  33.  
  34.    public void caretUpdate(CaretEvent var1) {
  35.       int var2 = var1.getDot();
  36.       int var3 = var1.getMark();
  37.       if (this.caretPos != var2) {
  38.          ((AccessibleContext)this).firePropertyChange("AccessibleCaret", new Integer(this.caretPos), new Integer(var2));
  39.          this.caretPos = var2;
  40.       }
  41.  
  42.       if (var3 != var2) {
  43.          ((AccessibleContext)this).firePropertyChange("AccessibleSelection", (Object)null, this.getSelectedText());
  44.       }
  45.  
  46.    }
  47.  
  48.    public void changedUpdate(DocumentEvent var1) {
  49.       Caret var2 = this.this$0.getCaret();
  50.       Integer var3 = new Integer(var2.getDot());
  51.       ((AccessibleContext)this).firePropertyChange("AccessibleText", (Object)null, var3);
  52.    }
  53.  
  54.    public AccessibleRole getAccessibleRole() {
  55.       return AccessibleRole.TEXT;
  56.    }
  57.  
  58.    public AccessibleStateSet getAccessibleStateSet() {
  59.       AccessibleStateSet var1 = super.getAccessibleStateSet();
  60.       if (this.this$0.isEditable()) {
  61.          var1.add(AccessibleState.EDITABLE);
  62.       }
  63.  
  64.       return var1;
  65.    }
  66.  
  67.    public AccessibleText getAccessibleText() {
  68.       return this;
  69.    }
  70.  
  71.    public String getAfterIndex(int var1, int var2) {
  72.       if (var2 >= 0 && var2 < JTextComponent.access$0(this.this$0).getLength()) {
  73.          switch (var1) {
  74.             case 1:
  75.                if (var2 + 1 >= JTextComponent.access$0(this.this$0).getLength()) {
  76.                   return null;
  77.                } else {
  78.                   try {
  79.                      return JTextComponent.access$0(this.this$0).getText(var2 + 1, 1);
  80.                   } catch (BadLocationException var9) {
  81.                      return null;
  82.                   }
  83.                }
  84.             case 2:
  85.                try {
  86.                   String var10 = JTextComponent.access$0(this.this$0).getText(0, JTextComponent.access$0(this.this$0).getLength());
  87.                   BreakIterator var11 = BreakIterator.getWordInstance();
  88.                   var11.setText(var10);
  89.                   int var12 = var11.following(var2);
  90.                   if (var12 != -1 && var12 < var10.length()) {
  91.                      int var13 = var11.following(var12);
  92.                      if (var13 != -1 && var13 < var10.length()) {
  93.                         return var10.substring(var12, var13);
  94.                      }
  95.  
  96.                      return null;
  97.                   }
  98.  
  99.                   return null;
  100.                } catch (BadLocationException var8) {
  101.                   return null;
  102.                }
  103.             case 3:
  104.                try {
  105.                   String var3 = JTextComponent.access$0(this.this$0).getText(0, JTextComponent.access$0(this.this$0).getLength());
  106.                   BreakIterator var4 = BreakIterator.getSentenceInstance();
  107.                   var4.setText(var3);
  108.                   int var5 = var4.following(var2);
  109.                   if (var5 != -1 && var5 < var3.length()) {
  110.                      int var6 = var4.following(var5);
  111.                      if (var6 != -1 && var6 < var3.length()) {
  112.                         return var3.substring(var5, var6);
  113.                      }
  114.  
  115.                      return null;
  116.                   }
  117.  
  118.                   return null;
  119.                } catch (BadLocationException var7) {
  120.                   return null;
  121.                }
  122.             default:
  123.                return null;
  124.          }
  125.       } else {
  126.          return null;
  127.       }
  128.    }
  129.  
  130.    public String getAtIndex(int var1, int var2) {
  131.       if (var2 >= 0 && var2 < JTextComponent.access$0(this.this$0).getLength()) {
  132.          switch (var1) {
  133.             case 1:
  134.                try {
  135.                   return JTextComponent.access$0(this.this$0).getText(var2, 1);
  136.                } catch (BadLocationException var8) {
  137.                   return null;
  138.                }
  139.             case 2:
  140.                try {
  141.                   String var9 = JTextComponent.access$0(this.this$0).getText(0, JTextComponent.access$0(this.this$0).getLength());
  142.                   BreakIterator var10 = BreakIterator.getWordInstance();
  143.                   var10.setText(var9);
  144.                   int var11 = var10.following(var2);
  145.                   return var9.substring(var10.previous(), var11);
  146.                } catch (BadLocationException var7) {
  147.                   return null;
  148.                }
  149.             case 3:
  150.                try {
  151.                   String var3 = JTextComponent.access$0(this.this$0).getText(0, JTextComponent.access$0(this.this$0).getLength());
  152.                   BreakIterator var4 = BreakIterator.getSentenceInstance();
  153.                   var4.setText(var3);
  154.                   int var5 = var4.following(var2);
  155.                   return var3.substring(var4.previous(), var5);
  156.                } catch (BadLocationException var6) {
  157.                   return null;
  158.                }
  159.             default:
  160.                return null;
  161.          }
  162.       } else {
  163.          return null;
  164.       }
  165.    }
  166.  
  167.    public String getBeforeIndex(int var1, int var2) {
  168.       if (var2 >= 0 && var2 <= JTextComponent.access$0(this.this$0).getLength() - 1) {
  169.          switch (var1) {
  170.             case 1:
  171.                if (var2 == 0) {
  172.                   return null;
  173.                } else {
  174.                   try {
  175.                      return JTextComponent.access$0(this.this$0).getText(var2 - 1, 1);
  176.                   } catch (BadLocationException var9) {
  177.                      return null;
  178.                   }
  179.                }
  180.             case 2:
  181.                try {
  182.                   String var10 = JTextComponent.access$0(this.this$0).getText(0, JTextComponent.access$0(this.this$0).getLength());
  183.                   BreakIterator var11 = BreakIterator.getWordInstance();
  184.                   var11.setText(var10);
  185.                   var11.following(var2);
  186.                   int var12 = var11.previous();
  187.                   int var13 = var11.previous();
  188.                   if (var13 == -1) {
  189.                      return null;
  190.                   }
  191.  
  192.                   return var10.substring(var13, var12);
  193.                } catch (BadLocationException var8) {
  194.                   return null;
  195.                }
  196.             case 3:
  197.                try {
  198.                   String var3 = JTextComponent.access$0(this.this$0).getText(0, JTextComponent.access$0(this.this$0).getLength());
  199.                   BreakIterator var4 = BreakIterator.getSentenceInstance();
  200.                   var4.setText(var3);
  201.                   var4.following(var2);
  202.                   int var5 = var4.previous();
  203.                   int var6 = var4.previous();
  204.                   if (var6 == -1) {
  205.                      return null;
  206.                   }
  207.  
  208.                   return var3.substring(var6, var5);
  209.                } catch (BadLocationException var7) {
  210.                   return null;
  211.                }
  212.             default:
  213.                return null;
  214.          }
  215.       } else {
  216.          return null;
  217.       }
  218.    }
  219.  
  220.    public int getCaretPosition() {
  221.       return this.this$0.getCaretPosition();
  222.    }
  223.  
  224.    public int getCharCount() {
  225.       return JTextComponent.access$0(this.this$0).getLength();
  226.    }
  227.  
  228.    public AttributeSet getCharacterAttribute(int var1) {
  229.       Object var2 = null;
  230.  
  231.       int var3;
  232.       for(var4 = JTextComponent.access$0(this.this$0).getDefaultRootElement(); !var4.isLeaf(); var4 = var4.getElement(var3)) {
  233.          var3 = var4.getElementIndex(var1);
  234.       }
  235.  
  236.       return var4.getAttributes();
  237.    }
  238.  
  239.    public Rectangle getCharacterBounds(int var1) {
  240.       if (var1 >= 0 && var1 <= JTextComponent.access$0(this.this$0).getLength() - 1) {
  241.          Rectangle var2;
  242.          try {
  243.             var2 = this.this$0.modelToView(var1);
  244.          } catch (BadLocationException var3) {
  245.             var2 = null;
  246.          }
  247.  
  248.          return var2;
  249.       } else {
  250.          return null;
  251.       }
  252.    }
  253.  
  254.    public int getIndexAtPoint(Point var1) {
  255.       return var1 == null ? -1 : this.this$0.viewToModel(var1);
  256.    }
  257.  
  258.    public String getSelectedText() {
  259.       return this.this$0.getSelectedText();
  260.    }
  261.  
  262.    public int getSelectionEnd() {
  263.       return this.this$0.getSelectionEnd();
  264.    }
  265.  
  266.    public int getSelectionStart() {
  267.       return this.this$0.getSelectionStart();
  268.    }
  269.  
  270.    public void insertUpdate(DocumentEvent var1) {
  271.       Caret var2 = this.this$0.getCaret();
  272.       Integer var3 = new Integer(var2.getDot());
  273.       ((AccessibleContext)this).firePropertyChange("AccessibleText", (Object)null, var3);
  274.    }
  275.  
  276.    public void removeUpdate(DocumentEvent var1) {
  277.       Caret var2 = this.this$0.getCaret();
  278.       Integer var3 = new Integer(var2.getDot());
  279.       ((AccessibleContext)this).firePropertyChange("AccessibleText", (Object)null, var3);
  280.    }
  281. }
  282.